//#ifndef CLASSE_H
//#define CLASSE_H


#include <URGE/URGE.h>

#define LABEL_PLAYER        1
#define LABEL_PORTAL        2
#define LABEL_PORTALBALL    3
#define LABEL_ENEMY         4
#define LABEL_OBJECT        5
#define LABEL_SURFACE       6
#define LABEL_OCEAN         7

#define RIGHT_BUTTON        1
#define LEFT_BUTTON         2
#define NONE_BUTTON         -1
USING_URGE;

class Player : public FirstPersonCamera
{
    public:
        int life;
        GuiSprite lifebar;
        GuiSprite lifebar_empty;
        Light light;

        Player(void);
        int collide(Object &other);
};


class Enemy:public Generic
{
public:
    int life;

    Enemy(void);
    int collide(Object &other);

};

class Portal: public Generic
{
    public:
        int timer;
        Light light;
        ParticleEmitter p;
        Portal(void);
        void appear(void);
        void disappear(void);
        void act(void);
        //int collide(Object&);
};

class PortalIn: public Portal
{
    private:
        Math::Array positionOut;
    public:
        PortalIn(void);
        void setPositionOut(Math::Array);
        Math::Array GetPositionOut(void);
        int collide(Object&);
};

class PortalOut: public Portal
{
    public:
        PortalOut(void);
        //void setPositionOut(Math::Array);
        //Math::Array getPositionOut(void);
        int collide(Object&);
};

class Shot: public Generic
{
    private:
        int timer;
        Math :: Array lastPosition;

    public:
        int mouseButton;
        PortalIn portalblue;
        PortalOut portalorange;
        ParticleEmitter spark;
        Light light;
        ParticleEmitter p;
        Shot(void);
        void appear(void);
        void disappear(void);
        int collide(Object &other);
        void act(void);
};


class Wall:public Generic
{
    public:
        Wall(void);
};
